// 使用此文件前先引入axios模块
// 1. axios的默认配置
axios.defaults.baseURL = 'https://api-hmugo-web.itheima.net/api/public/v1/'
// 2. 自己携带getToken方法
function getToken() {
  let str = sessionStorage.getItem('USER_LOGIN')
  return str ? JSON.parse(str).token : ''
}
let time = 0
// 3. axios的请求拦截
axios.interceptors.request.use(function (request) {
  // 这里可以对request对象进行增强处理
  // to-do...
  // 请求头中添加token属性
  // request.headers['token'] = getToken()
  // 放行
  // console.log('请求开始')
  time = new Date().getTime()
  // 请求开始时显示loading
  $('.loading').show()
  return request
})
// 4. axios的响应拦截
axios.interceptors.response.use(function (response) {
  // 这里可以对response对象进行增强处理
  // to-do...
  // 放行
  let t = new Date().getTime() - time
  // console.log('本次请求使用时间' + t + 'ms')
  // console.log('请求结束')
  // 请求结束时，隐藏loading
  $('.loading').hide()
  return response
})

// 5. 封装的axios通用请求方法 options = {url:'http://example.com',data:{id:1,age:2},method:'POST'}
async function request(options) {
  // 默认get请求
  if (!options.method) {
    options.method = 'get'
  }
  // 如果是get或delete请求，给options对象添加属性params
  if (options.method === 'get' || options.method === 'delete') {
    options.params = options.data
  }
  try {
    let { data: res } = await axios(options)
    return res
  } catch (error) {
    return { msg: error.message, code: 500, data: null }
  }
}
